package br.com.ps.bombertournament.game.util;

import java.util.HashMap;
import java.util.Map;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;

/**
 * Armazena as textura em um cache caso seja solicitado a mesma textura n�o ser� necess�rio gerar uma nova inst�ncia.
 * 
 * @author Rennan Stefan Boni - rennanboni@gmail.com
 */
public class TextureCache {
	
	private static final Map<String, Texture> textures = new HashMap<String, Texture>();

	/**
	 * Retorna a textura desejada, do cache caso exita, caso contr�rio ser� carregado partir dos arquivos internos adicionando nno cache interno.
	 * 
	 * @param path Caminho relacionado a textura do desejada
	 * @return Retorna a textura solicitada
	 */
	public static Texture getInternal(String path) {
		Texture result = null;
		if (textures.containsKey(path)) {
			result =  textures.get(path);
		} else {
			result = new Texture(Gdx.files.internal(path));
			
			textures.put(path, result);
		}
		
		return result;
	}
	
	public static void dispose() {
		if (textures != null) {
			for (String key : textures.keySet()) {
				textures.get(key).dispose();
			}
		}
		
		textures.clear();
	}
}
